/*const BASE_URL = 'http://localhost:10001';
 const BASE_LOADING = false;
 //const BASE_URL = 'http://we9.91gongju.cn:10001'
 export default {
 BASE_URL, BASE_LOADING
 }*/

import axios from 'axios'
import {Message} from 'element-ui'
import router from '@/router/index'
const MyHttpService = {}

MyHttpService.install = (Vue) => {
  /** 全局接口*/
  axios.defaults.baseURL = 'http://localhost:10001'
  // axios.defaults.baseURL = 'http://higo.91gongju.cn:10001'

  /** 添加请求拦截器*/
  //在请求发起之前 先来到下面的回调函数 设置头部
  axios.interceptors.request.use(function (config) {
    //console.log('请求成功 拦截器', config)
    //在发起请求前做什么
    //判断 如果是登录请求放行
    if (config.url !== '/login') {
      // 需要授权的API 必须在请求头使用Authorization
      const AUTH_TOKEN = localStorage.getItem('token');
      config.headers['token'] = AUTH_TOKEN;
    }
    return config;
  }, function (error) {
    console.log('请求错误 拦截器', error)
    //对请求错误做点什么
    return Promise.reject(error);
  });

  /** 添加相应拦截器*/
  axios.interceptors.response.use(function (response) {
    //对响应数据做点什么
    //console.log('响应数据 拦截器', response)
    //后端将accessToken放入头文件中使用
    if (response.data.code === 200 && response.config.url === '/login') {
      //登录接口登录后返回header中获取Authorization存入localStorage
      localStorage.setItem('token', response.headers.token)
    }
    return response;
  }, function (error) {
    //对响应错误做点什么
    console.log('响应数据错误 拦截器', error.response.data)
    if (error.response.data.code === 403) {
      Message.error(error.response.data.message)
      router.push({path: '/login'})
    }
    // 获取错误信息
    /* if (error = 'Error: Request failed with status code 401') {
     Message.error('认证失败，无法访问系统资源,请重新登录')
     }*/
    return Promise.reject(error)
  })

  // 添加实例方法
  Vue.prototype.$http = axios
}

export default MyHttpService

